package com.mindbox.viajes.web.base;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import com.mindbox.viajes.logica.ControladorUsuario;
import com.mindbox.web.utils.UtilsWeb;

/**
 * BackingBean de usuario MindBox 2009
 * 
 * @author Jaimoto
 * 
 */
public class UsuarioMBean {
	public String login;
	public String password;
	public com.mindbox.viajes.dto.Usuario usuarioDto;

	/**
	 * Valida el usuario
	 * 
	 * @return
	 * @author Jaimoto
	 */
	public String validarUsuario() {
		try {
			// Crear DTO e invocar el metodo de sanchez
			usuarioDto = new com.mindbox.viajes.dto.Usuario();
			ControladorUsuario controller = new ControladorUsuario();
			usuarioDto.setLogin(login);
			usuarioDto.setPwd(password);
			usuarioDto = controller.loginUsuario(usuarioDto);
			FacesContext context = FacesContext.getCurrentInstance();
			HttpSession session = (HttpSession) context.getExternalContext()
					.getSession(false);
			session.setAttribute("usuario", usuarioDto);
			return "menu";
		} catch (Exception e) {
			UtilsWeb.mensajeError(e.getMessage());
			e.printStackTrace();
			return null;
		}
	}

	public String registrarUsuario() {
		try {
			usuarioDto = new com.mindbox.viajes.dto.Usuario();
			ControladorUsuario controller = new ControladorUsuario();
			controller.crearUsuario(usuarioDto);
			return "menu";
		} catch (Exception e) {
			UtilsWeb.mensajeError(e.getMessage());
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * Obtiene el valor del atributo login
	 * 
	 * @return Valor de login
	 */
	public String getLogin() {
		return login;
	}

	/**
	 * Asigna el valor al atributo login
	 * 
	 * @param login
	 *            Valor de login para asignar
	 */
	public void setLogin(String login) {
		this.login = login;
	}

	/**
	 * Obtiene el valor del atributo password
	 * 
	 * @return Valor de password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * Asigna el valor al atributo password
	 * 
	 * @param password
	 *            Valor de password para asignar
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * Obtiene el valor del atributo usuarioDto
	 * 
	 * @return Valor de usuarioDto
	 */
	public com.mindbox.viajes.dto.Usuario getUsuarioDto() {
		return usuarioDto;
	}

	/**
	 * Asigna el valor al atributo usuarioDto
	 * 
	 * @param usuarioDto
	 *            Valor de usuarioDto para asignar
	 */
	public void setUsuarioDto(com.mindbox.viajes.dto.Usuario usuarioDto) {
		this.usuarioDto = usuarioDto;
	}

}
